home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / wild / developer / examples / src / cynetik / cynetic3.s < prev    next >
Text File  |  1999-01-25  |  7KB  |  322 lines

  1.     
  2.     output    wildpj:demos/3d/cynetik/Cynetik_Texture
  3.  
  4.     include    exec/exec_lib.i
  5.     include    wildinc.gs
  6.     include    wild/wild.i
  7.     include    wild/allmodules.i
  8.     include    extensions/vektorial.i
  9.     include    pypermacro.i
  10.     include    wild/objects.i
  11.  
  12.     Exec
  13.     lea.l    wildname,a1
  14.     jsr    _LVOOldOpenLibrary(a6)
  15.     move.l    d0,_WILDBase
  16.     beq    exit
  17.     
  18.     bsr    Go
  19.  
  20. exit    Exec
  21.     movea.l    _WILDBase,a1
  22.     move.l    a1,d0
  23.     beq.b    .nwi
  24. .nwi    jsr    _LVOCloseLibrary(a6)
  25.     moveq.l    #0,d0
  26.     rts
  27.     
  28. vektname    dc.b    'libs:Wild/Vektorial.library',0
  29. wildname    dc.b    'wild.library',0
  30. drawm        dc.b    'Candy+',0
  31. dispm        dc.b    'TryPeJam+',0
  32. brokm        dc.b    'TiX+',0
  33. lighm        dc.b    'Koton',0
  34. sincosname2    dc.b    'libs:'
  35. sincosname1    dc.b    'wild/tables/sincos1616.table',0
  36. TexName        dc.b    'images/misc.chu24',0
  37.         cnop    0,4
  38. _WILDBase    dc.l    0
  39. VektBase    dc.l    0
  40. WApp        dc.l    0
  41. AppTags        dc.l    WITD_Scene,TestScene
  42.         dc.l    WIAP_DrawModule,drawm
  43.         dc.l    WIAP_DisplayModule,dispm
  44.         dc.l    WIAP_BrokerModule,brokm
  45.         dc.l    WIAP_LightModule,lighm
  46.         dc.l    WIDI_Width,320
  47.         dc.l    WIDI_Height,256
  48.         dc.l    WIDI_DisplayID,$21000
  49.         dc.l    WITD_CutDistance,32000
  50.         dc.l    0
  51. sincos        dc.l    0
  52. SinOffs        dc.l    0
  53.  
  54. Go    bsr    SetUpWildApp
  55.     bsr    SetUpExts
  56.     bsr    SetUpScene
  57.         
  58. cycle    Wild
  59.     move.l    WApp,a0
  60.     Call    InitFrame
  61.     move.l    WApp,a0
  62.     Call    RealyzeFrame
  63.     move.l    WApp,a0
  64.     Call    DisplayFrame
  65.  
  66.     add.w    #8,PUI
  67.     bmi.b    .npuir
  68.     clr.w    PUI
  69. .npuir    moveq.l    #0,d0
  70.     move.b    $dff007,d0
  71.     andi.w    #63,d0
  72.     cmp.w    #36,d0
  73.     bge.b    .nadpui
  74.     move.w    PUI,d1
  75.     sub.w    d0,d1
  76.     cmp.w    #-255,d1
  77.     bge.b    .ntpui
  78.     move.w    #-255,d1
  79. .ntpui    move.w    d1,PUI
  80. .nadpui
  81.  
  82. RotSecY    MACRO    ;\1=sec,angle EA
  83.     movea.l    VektBase,a6
  84.     lea.l    SECTOR_\1+ent_Ref+ref_I+Rel,a0
  85.     move.l    \2,d0
  86.     moveq.l    #vek_X,d1
  87.     moveq.l    #vek_Z,d2
  88.     Call    RotateDD
  89.     lea.l    SECTOR_\1+ent_Ref+ref_K+Rel,a0
  90.     move.l    \2,d0
  91.     moveq.l    #vek_X,d1
  92.     moveq.l    #vek_Z,d2
  93.     Call    RotateDD
  94.     ENDM
  95.     
  96.     RotSecY    SkruBase,BaseRot
  97.     RotSecY    SkruTreA,TreRot
  98.     RotSecY    SkruTreB,TreRot
  99.     RotSecY    SkruHeadA,HeadRot
  100.     RotSecY    SkruHeadB,HeadRot
  101.     RotSecY    SkruHeadC,HeadRot
  102.     RotSecY    SkruHeadD,HeadRot
  103.     RotSecY    SkruHeadE,HeadRot
  104.     RotSecY    SkruHeadF,HeadRot
  105.  
  106.     sub.l    #10,MyCamera+ref_O+Abs+vek_Y
  107.         
  108.     movea.l    VektBase,a6
  109.     lea.l    MyCamera,a0
  110.     lea.l    SECTOR_SkruBase+ent_Ref+ref_O+Abs,a1
  111.     moveq.l    #1,d0
  112. CLA    Call    CamLookingAt
  113.  
  114. .pr    btst    #7,$bfe001
  115.     beq.b    .pr
  116.     
  117.     btst    #6,$bfe001
  118.     bne    cycle
  119.  
  120.     bsr    KillWildApp
  121.     bsr    KillExts
  122.     rts
  123.  
  124. BaseRot    dc.l    5
  125. TreRot    dc.l    1023-10
  126. HeadRot    dc.l    25
  127.  
  128. SetUpScene
  129.     Wild
  130.     TagStkGet
  131.     TagStk        WIBU_BuildObject,#0
  132.     TagStk        WIBU_ObjectType,#OBJECT_Texture
  133.     TagStk        WIBU_ModifyObject,#TextTex
  134.     TagStk        ATTR_TEXTURE_HOOK,#TexLoaderHook
  135.     TagStk        ATTR_TEXTURE_WIDTH,#256
  136.     TagStk        ATTR_TEXTURE_HEIGHT,#256
  137.     TagStk        FRIEND_TEXTURE_WORLD,#TestWorld
  138.     TagStk        WIBU_WildApp,WApp
  139.     TagStkAx    a0
  140.     Call    BuildWildObject
  141.     TagStkPop
  142.     rts
  143.  
  144. SetUpExts    Wild
  145.         moveq.l    #0,d0
  146.         lea.l    vektname,a1
  147.         Call    LoadExtension
  148.         move.l    d0,VektBase
  149.         
  150.         rts
  151.  
  152. KillExts    Wild
  153.         movea.l    VektBase,a1
  154.         Call    KillExtension
  155.         rts
  156.         
  157. SetUpWildApp    Exec
  158.         Call    CreateMsgPort
  159.         tst.l    d0
  160.         bne.b    .msgok
  161.         rts
  162. .msgok        Wild
  163.         movea.l    d0,a0
  164.         lea.l    AppTags,a1
  165.         Call    AddWildApp
  166.         move.l    d0,WApp
  167.         
  168.         lea.l    sincosname1,a0
  169.         moveq.l    #WITA_SINCOS1616,d0
  170.         Call    LoadTable
  171.         move.l    d0,sincos
  172.         bne.b    .had
  173.         lea.l    sincosname2,a0
  174.         moveq.l    #WITA_SINCOS1616,d0
  175.         Call    LoadTable
  176.         move.l    d0,sincos
  177. .had        rts
  178.  
  179. KillWildApp    Wild
  180.         move.l    sincos,a1
  181.         move.l    a1,d0
  182.         beq.b    .nsc
  183.         Call    KillTable
  184. .nsc        
  185.         move.l    WApp,d0
  186.         bne.b    .okwa
  187.         rts
  188. .okwa        movea.l    d0,a0
  189.         move.l    wap_WildPort(a0),d2
  190.         Call    RemWildApp
  191.         Exec
  192.         move.l    d2,a0
  193.         Call    DeleteMsgPort
  194.         rts
  195.  
  196. pal        incbin    various1.pal                
  197.  
  198. TestScene    dc.l    TestWorld
  199. MyCamera
  200.  
  201.         QuickRefAbs    0,0,-900
  202.  
  203.         dc.l    pal
  204.         
  205. *        DefAbs    0,0,-100
  206. *        DefAbs    0,1<<16,0
  207. *        DefAbs    1<<16,0,0
  208. *        DefAbs    0,0,1<<16
  209.  
  210. TestWorld
  211. twarhead    dc.l    TestArena
  212. twartail    dc.l    0
  213.         dc.l    TestArena
  214.         dc.l    TestPlayer            
  215. twtxhead    dc.l    twtxtail
  216. twtxtail    dc.l    0
  217.         dc.l    twtxhead
  218.  
  219. TestPlayer    dc.l    0            ; HAKK: no player, for now a sector is enough
  220.  
  221. TestArena    dc.l    twartail
  222.         dc.l    twarhead
  223.         QuickRefRel    0,0,0
  224.         dc.l    0            ; Parent of arenas is UNIVERSE! ABSOLUTE=RELATIVE
  225.         dc.l    0
  226.         dc.w    0
  227.         
  228. tasehead    dc.l    SECTOR_SkruBase
  229. tasetail    dc.l    0    
  230.         dc.l    SECTOR_SkruHeadF
  231.  
  232. taalhead    dc.l    taaltail
  233. taaltail    dc.l    0
  234.         dc.l    taalhead
  235. talihead    dc.l    TestLight
  236. talitail    dc.l    0
  237.         dc.l    TestLight
  238.         dcb    Sphere_SIZE*3
  239.         dc.l    0
  240.  
  241. TestLight    dc.l    AmbLight,talihead
  242.         dc.l    DOT_SkruBase11
  243.         dc.l    $0055ff
  244.         dc.w    255
  245.  
  246. AmbLight    dc.l    talitail,TestLight
  247.         dc.l    0
  248.         dc.l    $ffca22
  249.         dc.w    -16
  250.  
  251. TextTex        dc.l    0,0
  252.         dc.l    0
  253.         dc.l    0
  254.         dc.l    0,0,0,0,0    
  255.         dc.l    0
  256.         dc.w    256,256
  257.         dc.b    0,0
  258.  
  259. TexLoaderHook    dc.l    0,0,TexLoader,0,TexName
  260.  
  261. ; a0:hook    a1:action    a2:texture *
  262. TexLoader    move.l    a6,-(a7)
  263.         Wild
  264.         move.l    a1,d0
  265.         cmp.l    #TEXACTION_Load,d0
  266.         beq.b    .load
  267.         
  268.         movea.l    tex_Raw(a2),a1
  269.         Call    FreeVecPooled
  270.         bra.b    .done
  271.  
  272. .load        moveq.l    #0,d0
  273.         move.l    16(a0),d1
  274.         suba.l    a0,a0
  275.         Call    LoadFile
  276.         move.l    d0,tex_Raw(a2)
  277.  
  278. .done        movea.l    (a7)+,a6
  279.         rts    
  280.  
  281. TEXTURE_SkruBase0    EQU    TextTex
  282. TEXTURE_SkruTreA0    EQU    TextTex
  283. TEXTURE_SkruTreB0    EQU    TextTex
  284. TEXTURE_SkruHeadA0    EQU    TextTex
  285. TEXTURE_SkruHeadB0    EQU    TextTex
  286. TEXTURE_SkruHeadC0    EQU    TextTex
  287. TEXTURE_SkruHeadD0    EQU    TextTex
  288. TEXTURE_SkruHeadE0    EQU    TextTex
  289. TEXTURE_SkruHeadF0    EQU    TextTex
  290.         
  291. PUI        dc.w    -16
  292.     
  293.         MakeSector SkruBase,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruBase.sec.s
  294.         MakeSector SkruTreA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreA.sec.s
  295.         MakeSector SkruTreB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreB.sec.s
  296.         MakeSector SkruHeadA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadA.sec.s
  297.         MakeSector SkruHeadB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadB.sec.s
  298.         MakeSector SkruHeadC,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadC.sec.s
  299.         MakeSector SkruHeadD,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadD.sec.s
  300.         MakeSector SkruHeadE,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadE.sec.s
  301.         MakeSector SkruHeadF,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadF.sec.s
  302.         
  303.         LinkSector SkruBase,SECTOR_SkruTreA,tasehead,TestArena
  304.         LinkSector SkruTreA,SECTOR_SkruTreB,SECTOR_SkruBase,SECTOR_SkruBase
  305.         LinkSector SkruTreB,SECTOR_SkruHeadA,SECTOR_SkruTreA,SECTOR_SkruBase
  306.         LinkSector SkruHeadA,SECTOR_SkruHeadB,SECTOR_SkruTreB,SECTOR_SkruTreA
  307.         LinkSector SkruHeadB,SECTOR_SkruHeadC,SECTOR_SkruHeadA,SECTOR_SkruTreA
  308.         LinkSector SkruHeadC,SECTOR_SkruHeadD,SECTOR_SkruHeadB,SECTOR_SkruTreA
  309.         LinkSector SkruHeadD,SECTOR_SkruHeadE,SECTOR_SkruHeadC,SECTOR_SkruTreB
  310.         LinkSector SkruHeadE,SECTOR_SkruHeadF,SECTOR_SkruHeadD,SECTOR_SkruTreB
  311.         LinkSector SkruHeadF,tasetail,SECTOR_SkruHeadE,SECTOR_SkruTreB
  312.     
  313.         PosSector SkruBase,0,0,0
  314.         PosSector SkruTreA,220,-202,93
  315.         PosSector SkruTreB,-220,-202,-93
  316.         PosSector SkruHeadA,0,62,186
  317.         PosSector SkruHeadB,140,62,-93
  318.         PosSector SkruHeadC,-160,62,-93
  319.         PosSector SkruHeadD,0,62,186
  320.         PosSector SkruHeadE,140,62,-93
  321.         PosSector SkruHeadF,-160,62,-93
  322.